6. Windows Azure
     Vamos ilustrar o conceito de Computação em Nuvem com o exemplo do Microsoft Windows  Azure que é um tipo de PaaS. Esta
 tecnologia provê serviços computacionais baseados em nuvem e sob demanda, como vimos  anteriormente. Cada aplicação
 desenvolvida no Windows Azure é executado em uma ou mais máquinas virtuais. O objetivo  principal desta tecnologia é prover
 escalabilidade massiva. Para isso o Windows Azure cria diferentes instâncias iguais que  executam o mesmo tipo de tarefas. Ao
 contrario do caminho mais intuitivo, que seria aumentar ao máximo a capacidade de cada  máquina virtual, onde é executada cada
 aplicação, o Windows Azure procura instanciar diversas máquinas virtuais executando o mesmo  serviço replicado, garantindo uma
 maior confiabilidade.
     Cada máquina física neste sistema possui uma Fabric, que faz o papel de hipervisor, e o Fabric  Controller, que é a ferramenta de
 acesso a este hipervisor. As instâncias dos seu servidor são chamadas de "Roles" Os Roles são  classificados em três tipos:
 
  • Web Role
     Instância especializada em receber e tratar requisições "http". Sendo assim, cada web role  possui toda a estrutura necessária
 para processar tais requeisições, pois é executado sobre o Microsoft Internet Information Services  (IIS). As requisições são feitas
 sobre um mesmo DNS e são conduzidas até o "Load Balancer" (Balanceador de Carga), que  distribui as requisições por diferentes
 Web Roles da mesma aplicação de modo a não distribuir o processamento, uma vez que cada  Web Role é executado sobre uma
 máquina virtual diferente. Quando o Web Role recebe uma requisição que requer um  processamento maior, que deve ser executado
 em background, ele envia uma requisição à um Worker Role através das Queues (filas).
 
  • Worker Role
     Instâncias focadas em acesso "não http". Em geral Worker Role processa persistentemente  todos os perdidos armazenados pelos
 Web Roles nas Queues. Este tipo de aplicação é o chamado Queue Poling Worker. O Worker  Role é responsável por realizar as
 tarefas mais lentas, mas em alguns casos especiais podem, assim como os Web Roles, se  comunicar com outros nós, como ,por
 exemplo, o Listening Worker Role, que pode ser um servidor de um jogo por exemplo, que recebe  conexões TCP e nem por isso
 deixa de realizar um serviço lento e custoso. Existe também um terceiro tipo, o External Process  Worker Role, que pode ser ,por
 exemplo, um servidor SQL, acessado remotamente.
 
  • VM Role
     Instâncias diferenciadas, que dão acesso in geral ao usuário do sistema operacional.  Diferentemente dos Web e Worker Roles, o
 Fabric Controller não vai executar as rotinas de replicação para este tipo de Role. Ele é um Role  diferenciado, instanciado com outro
 tipo de finalidade. É um ambiente que pode ser destinado à migrar as aplicações desejadas para  aplicações Windows Azure, uma
 vez que o VM Role é capaz de simular os mesmos ambientes do Web ou do Worker Role.
     A figura abaixo ilustra o esquema mais comum, o Queue Poling Worker.
graphic